#include <iostream>
#include <vector>

using namespace std;
//vector预留空间:减少vector在动态扩展容量时的扩展次数
//函数原型：
//reserve(int len);       //容器预留len个元素长度，预留位置不初始化，元素不可访问

void test() {
    vector<int> v;

    v.reserve(100000);//预留空间

    int num = 0;//统计开辟次数
    int *p = nullptr;
    for (int i = 0; i < 100000; ++i) {
        v.push_back(i);
        if (p != &v[0]) {
            p = &v[0];
            num++;
        }
    }
    cout << "num=" << num << endl;
}

int main() {
    test();
    return 0;
}